Navigation system, navigation device and frame rate adjusting method thereof

ABSTRACT

There is provided a frame rate adjusting method of a navigation device including: counting a frame period using a clock of a local oscillator of the navigation device; counting a polling period using the same clock; calculating a difference between the frame period and the polling period; adjusting a frame rate of the navigation device when the difference is smaller than a predetermined margin.

BACKGROUND 1. Field of the Disclosure

This disclosure generally relates to a navigation device and system and,more particularly, to a navigation device and system having anadjustable frame rate to reduce the power consumption by operating at aminimum operable frame rate and a frame rate adjusting method thereof.

2. Description of the Related Art

In a typical image based mouse device, the motion of the mouse device isproduced by calculating displacement between a pair of images capturedby an image sensor thereof at a frame rate. Then, a microcontroller unitwill read the calculated displacement from the image sensor at a pollingfrequency to perform corresponding control. To read non-zerodisplacement data from the image sensor when the mouse device iscontinuously in motion, the frame rate should be kept being larger thanthe polling frequency all the time.

Typically, a mouse device includes an interval oscillator which isgenerally not an accurate oscillator, e.g., a crystal oscillator, inorder to reduce the cost. Due to the natural variation on the internaloscillator's frequency over process, voltage, and temperature (PVT), theframe rate is configured to include a margin above the polling frequencyto keep the displacement data being read correctly. Since the powerconsumption of an image sensor is strongly related to the frame rate,the margin should be kept as small as possible to allow the image sensorto operate at the minimum operable frame rate.

Accordingly, the present disclosure provides a navigation device andsystem having an adjustable frame rate to reduce the power consumptionthereof by operating at a minimum operable frame rate as well as a framerate adjusting method thereof.

SUMMARY

The present disclosure provides a navigation device and system thatdetermine a frame period and count a polling period by a clock of aninternal oscillator thereof, and adjust the frame period according to adifference between the determined frame period and the counted pollingperiod.

The present disclosure provides a navigation device including aninternal oscillator and a processor. The internal oscillator isconfigured to generate a clock signal having a clock frequency. Theprocessor is coupled to the internal oscillator, and configured to countthe clock signal between successive displacement being readout todetermine a polling period, generate displacement every frame period,and compare the polling period and the frame period to determine whetherto adjust the frame period.

The present disclosure further provides a navigation system including acomputer system and a navigation device. The computer system isconfigured to send requests to read displacement. The navigation deviceis coupled to the computer system, and includes an I/O interface, aninternal oscillator and a processor. The I/O interface is configured toreceive the requests from the computer system and output thedisplacement to the computer system. The internal oscillator isconfigured to generate a clock signal having a clock frequency. Theprocessor is coupled to the I/O interface and the internal oscillator,and configured to count the clock signal between successive displacementbeing readout to determine a polling period, generate the displacementevery frame period, calculate a difference between the polling periodand the frame period, and compare the difference with a predeterminedmargin.

The present disclosure further provides a frame rate adjusting method ofa navigation device including: counting, by a processor, a frame periodusing a clock signal of an internal oscillator; counting, by theprocessor, a polling period using the clock signal of the internaloscillator to output displacement every polling period; calculating, bythe processor, a difference between the frame period and the pollingperiod; and adjusting, by the processor, the frame period when thedifference is smaller than a predetermined margin.

In the embodiment of the present disclosure, the navigation device is animage based navigation device such as an optical mouse, a fingernavigator, a cleaning robot or the like that has a navigation sensor forcalculating displacement with respect to a work surface, and thecalculated displacement is then readout at a polling rate by a processoroutside the navigation sensor.

In the embodiment of the present disclosure, the frame rate is increasedor decreased by directly changing the clock frequency of a localoscillator or by changing a count threshold that determines one imageframe to be generated.

In the embodiment of the present disclosure, a margin, e.g., M, betweenthe frame rate and the polling rate is preferably 0.1%<M<4.12% of thepolling rate. By keeping the frame rate to be larger than the pollingrate above (or equal to) the margin, the external MCU does not readzero-displacement as long as the navigation device is continuously inmotion, wherein said in motion is referred to, for example, that thedisplacement calculated by adjacent two image frames is larger than apredetermined value (promising that the calculated displacement is notcaused by noises).

In the embodiment of the present disclosure, the polling rate is countedevery predetermined time interval without being counted continuouslysince the clock frequency of a local oscillator of the navigation devicedoes not deviate quickly under room temperature. If the margin M is setsmaller, the predetermined time interval between counting the pollingrate is set larger.

BRIEF DESCRIPTION OF THE DRAWINGS

Other objects, advantages, and novel features of the present disclosurewill become more apparent from the following detailed description whentaken in conjunction with the accompanying drawings.

FIG. 1 is a schematic block diagram of a navigation system according toone embodiment of the present disclosure.

FIG. 2 is a schematic diagram of the operation of a navigation systemaccording to one embodiment of the present disclosure.

FIG. 3 is a flow chart of a frame rate adjusting method of a navigationdevice according to one embodiment of the present disclosure.

DETAILED DESCRIPTION OF THE EMBODIMENT

It should be noted that, wherever possible, the same reference numberswill be used throughout the drawings to refer to the same or like parts.

The present disclosure is related to keeping the frame rate of an imagesensor of a navigation device at a minimum operable value (still fasterthan polling rate) to reduce the power consumption of the unnecessaryhigh frame rate. Furthermore, the adjustment process of the frame rateis performed occasionally to further reduce the power consumption causedthereby due to the nature of slow frequency drift of the clock signal atroom temperature.

Referring to FIG. 1, it is a schematic block diagram of a navigationsystem 100 according to one embodiment of the present disclosure. Thenavigation system 100 includes a navigation device 11 and a computersystem 13 coupled to each other in a wired or wireless manner. Thecomputer system 13 frequently sends requests, shown as Sreq in FIG. 1for illustration purposes, to read displacement from the navigationdevice 11 in order to perform corresponding control. The navigationdevice 11 outputs displacement, shown as Dsp in FIG. 1 for illustrationpurposes, in response to the requests Sreq from an externalmicrocontroller unit (MCU) 131 included in the computer system 13.

The navigation device 11 is, for example, an optical mouse, an opticalfinger navigation or a cleaning robot operating with respect to a worksurface S, which is a table surface, a finger surface or a floor surfacecorresponding to the type of the navigation device 11. At least one ofthe navigation device 11 and the work surface S is moved duringoperation.

The computer system 13 is, for example, a tablet computer, a desktopcomputer, a notebook computer, a work station, a smart home server orthe like that performs the corresponding control using the displacementdata received from the navigation device 11.

Referring to FIGS. 1 and 2 together, FIG. 2 is a schematic diagram ofthe operation of the navigation system 100 according to one embodimentof the present disclosure. As shown in FIG. 2, the external MCU 131reads displacement every polling period, e.g., shown as t(n−1)poll,t(n)poll and t(n+1)poll, and the navigation device 11 generates thedisplacement every frame period, e.g., shown as t(n−1)frame, t(n)frameand t(n+1)frame.

The navigation device 11 includes a light source 11, an image sensor113, an internal oscillator 115, a processor 116, a I/O interface 117and a memory 118, and some or all of these elements are formed as asensor chip.

The light source 111 is an infrared light emitting diode or an infraredlaser diode, and is used to illuminate the work surface S duringoperation. The lighting of the light source 111 is controlled by theprocessor 116 and corresponding to the frame capturing of the imagesensor 113.

The image sensor 113 is a CCD image sensor, a CMOS image sensor or asingle-photon avalanche diode (SPAD) sensor array. The image sensor 113is used to receive reflected light from the work surface S to outputimage frames at a frame rate f_(frame). The structure and operation ofthe CCD image sensor, the CMOS image sensor and the SPAD sensor arrayare known to the art and are not a main objective of the presentdisclosure, and thus details thereof are not described herein. As shownin FIG. 2, the image sensor 113 respectively captures an image frame at,for example, times t1, t2 and t3. A time interval between adjacent imageframes is a frame period t_(frame), e.g., showing as t(n−1)frame,t(n)frame and t(n+1)frame in FIG. 2. A frame rate f_(frame) is areciprocal of the frame period t_(frame).

The internal oscillator 115 is used as a local oscillator of thenavigation device 11, and generates pulses of a clock signal CLK at aclock frequency. To reduce the total cost, the internal oscillator 115is not a crystal oscillator and may have a frequency shift from PVT. Theinternal oscillator 115 is, for example, an RC oscillator, but notlimited to. If previously trimmed before shipment or setup, the internaloscillator 115 may have about +3% or −3% frequency shift over voltageand temperature. If not previously trimmed before shipment or setup, theinternal oscillator 115 can even have +13% or −13% frequency shift overvoltage and temperature.

In some non-limiting aspects, the I/O interface 117 is a wiredinterface, e.g., USB, or a wireless interface, e.g., a Bluetooth orWiFi. The I/O interface 117 is used to receive the request Sreq from thecomputer system 13 (or from the external MCU 131) and output thedisplacement Dsp to the computer system 13. As shown in FIG. 1, a timeinterval between adjacent requests Sreq and between adjacent outputteddisplacement Dsp is referred to a polling period t_(poll) herein, e.g.,showing as t(n−1)poll, t(n)poll and t(n+1)poll in FIG. 2. A polling ratef_(poll) is a reciprocal of t_(poll). The polling rate of the externalMCU 131 is controlled by a system clock of the computer system 13, andsaid system clock is generally trimmed to only have +1% or −1% frequencyshift over voltage and temperature.

The frequency shifts mentioned above may cause the frame rate f_(frame)to be smaller than the polling rate f_(poll) in the worst case.

In consideration of the frequency shifts of both the interval oscillator115 and the system clock of the computer system 13, the followingequation (1) is preferably fulfilled in order to operate correctly:f _(frame)>(1+Y)×f _(poll)/(1−X)  (1)

wherein, X is the interval oscillator variation in percentage, and Y isthe MCU polling rate variation in percentage. In considering the abovementioned frequency shifts of the interval oscillator 115 and the systemclock of the computer system 13, a difference[f_(frame)−(1+Y)×f_(poll)/(1−X)] is between 0.1% and 16% of f_(poll) orpreferably between 0.1% and 4% of f_(poll).

The memory 118 is a volatile memory, e.g., RAM, or nonvolatile memory,e.g., flash memory, which is used to store predetermined margins,parameters and algorithm that are used in operation, e.g., performingthe method in FIG. 3.

The processor 116 is electrically coupled to the internal oscillator 15,the memory 118 and the I/O interface 117, and is selected from a digitalsignal processor (DPS) or an application specific integrated circuit(ASIC). The processor 116 is used to count a clock signal betweensuccessive displacement readout to determine a polling period t_(poll),generate displacement every frame period t_(frame), and compare thepolling period t_(poll) and the frame period t_(frame) to determinewhether to adjust the frame period t_(frame). In the present disclosure,the displacement readout includes sending a request Sreq from theexternal MCU 131 to the navigation device 11 and outputting displacementDsp from the navigation device 11 to the external MCU 131.

In comparing the polling period t_(poll) and the frame period t_(frame),the processor 116 firstly calculates a difference between the pollingperiod t_(poll) and the frame period t_(frame) (e.g.,t_(poll)−t_(frame)), and then compares the difference with apredetermined margin M. In the present disclosure, the predeterminedmargin M is set as 0.1% to 16% of the polling period t_(poll) if theclock frequency of the internal oscillator 115 is not trimmedpreviously, and is set as 0.1% to 4% of the polling period t_(poll) ifthe clock frequency of the internal oscillator 115 has been previouslytrimmed.

In the present disclosure, as the navigation device 11 does not know thesystem clock of the computer system 13, the processor 116 determines thepolling period t_(poll) using the clock signal CLK from the internaloscillator 115. In one non-limiting aspect, the processor 116 counts anumber of pulses of the clock signal CLK between a pair of adjacentrequests Sreq from the external MCU 131 of the computer system 13 todetermine the polling period t_(poll). In another non-limiting aspect,the processor 116 counts a number of pulses of the clock signal CLKbetween a pair of displacement Dsp adjacently outputted to the externalMCU 131 of the computer system 13 to determine the polling periodt_(poll).

In the present disclosure, the processor 116 counts a number of pulsesof the clock signal up to a predetermined number, and when thepredetermined number is reached, an image frame is generated, e.g., attimes t1′, t2′ and t3′ in FIG. 2. That is, in the present disclosure theframe period t_(frame) is a time interval during which a predeterminednumber of pulses of the clock signal CLK is counted. Accordingly, thereare two ways to adjust frame period t_(frame), i.e. adjusting the framerate. The first way is to directly increase or decrease the clockfrequency such that when the predetermined number of pulses of the clocksignal CLK is reached, the frame period t_(frame) is also increased ordecreased. The second way is to increase or decrease the predeterminednumber such that when a different predetermined number of pulses of theclock signal CLK is reached, the frame period t_(frame) is alsoincreased or decreased.

Referring to FIG. 3, it is a flow chart of a frame rate adjusting methodof a navigation device 11 according to one embodiment of the presentdisclosure, including the steps of: counting, by a processor, a frameperiod using a clock signal of an internal oscillator (Step S31);counting, by the processor, a polling period using the clock signal ofthe internal oscillator to output displacement every polling period(Step S32); calculating, by the processor, a difference between theframe period and the polling period (Step S33); and adjusting, by theprocessor, the frame period when the difference is smaller than apredetermined margin (Step S34-S35). Referring to FIGS. 1 to 3, detailsof one example of the frame rate adjusting method are described below.

Step S31: The processor 116 counts a number of pulses of the clocksignal CLK up to a predetermined value as a frame period t_(frame). Forexample, if a clock cycle of the clock signal CLK is T_(CLK) and anumber of counted pulses is Nf, then t_(frame)=T_(CLK)×Nf. For examplein FIG. 2, the processor 116 receives an image frame from the imagesensor 113 at times t1, t2 and t3, and then calculates and generatesdisplacement respectively at times t1′, t2′ and t3′. That is, during thetime interval (t1′−t1), (t2′−t2) and (t3′−t3), the processor 116calculates the displacement by comparing two image frames received fromthe image sensor 113. The method to calculate the displacement may useconventional method, e.g., correlation between image frames, withoutparticular limitations.

Step S32: The external MCU 131 of an external computer system 13frequently sends requests Sreq to the navigation device 11 to readdisplacement for corresponding control, e.g., controlling a cursor shownon a display screen or changing the moving direction. The processor 116of the navigation device 11 counts a number of pulses of the clocksignal CLK between a pair of adjacent requests Sreq to determine apolling period t_(poll). For example, if a clock cycle of the clocksignal CLK is T_(CLK) and a number of counted pulses is Np, thent_(poll)=T_(CLK)×Np.

Step S33: After obtaining the frame period t_(frame) and the pollingperiod t_(poll), the processor 116 calculates a difference between theframe period t_(frame) and the polling period t_(poll), wherein saiddifference is (t_(poll)−t_(frame)) or (Np−Nf).

Step S34: Next, the processor 116 compares the difference with apredetermined margin M, wherein the predetermined margin M is a timeinterval or a number of pulses depending on which of(t_(poll)−t_(frame)) or (Np−Nf) is used. In the present disclosure, M isselected from 0.1% to 16% of t_(poll) or Np. If the difference is largerthan the predetermined margin M, it means that the frequency drift ofclock signal CLK is not apparent enough and thus it is not necessary toperform the frame period or frame rate adjustment, and thus Step S31 isreturned.

Step S35: When the difference is smaller than the predetermined marginM, the processor 116 adjusts the frame period t_(frame). As mentionedabove, the frame period t_(frame) is adjusted by directly increasing ordecreasing a clock frequency of the internal oscillator 115, or byincreasing or decreasing a predetermined number of pulses of the clocksignal CLK to generate one image frame. For example, if the processor116 originally generates one image frame every N counted clock pulses,after the adjustment the processor 116 generates one image frame every(N+1) or (N−1) counted clock pulses, but not limited thereto. As long asthe polling period t_(poll) is kept being longer than the frame periodt_(poll), zero-displacement is not readout to the external MCU 131 whenthe navigation device 11 continuously has a relative movement withrespect to the work surface S.

As mentioned above, since the frequency drift of the internal oscillator115 is slow under room temperature, it is not necessary to perform theprocess of FIG. 3 at each displacement readout. In one non-limitingaspect, the processor 116 counts the clock signal CLK between successivedisplacement readout every predetermined time interval, which is muchlonger than a time interval between two displacement readout, e.g., 100msec or more when the polling period is 1 msec. The predetermined timeinterval is set before shipment or selected by a user via a userinterface to cover more numbers of displacement readout when thepredetermined margin M is set smaller. For example, the processor 116counts one polling period t_(poll) using the clock signal CLK between apair of displacement readout, and then stop counting another pollingperiod t_(poll) using the clock signal CLK for a predetermined number ofdisplacement readout after the pair of displacement readout.

It is appreciated that although the above embodiment is described in theway that the processor 116 calculates a period difference to be comparedwith a period margin M, the present disclosure is not limited to. It ispossible that the processor 116 calculates a rate difference (i.e.,f_(frame)−f_(poll)) to be compared with a rate margin since the framerate and the polling rate are respectively reciprocals of the frameperiod and the polling period.

As mentioned above, in an image based mouse device, the frame rateshould be always maintained to be faster than the displacement pollingrate of an external MCU. However, if the frame rate is much higher thanthe displacement polling rate, it will cause unnecessary powerconsumption. Accordingly, the present disclosure further provides anavigation system and device (e.g. FIG. 1) and a frame rate adjustingmethod thereof (e.g. FIG. 3) that can keep the frame rate at a minimumoperable value to improve the polling accuracy and reduce the totalpower consumption.

Although the disclosure has been explained in relation to its preferredembodiment, it is not used to limit the disclosure. It is to beunderstood that many other possible modifications and variations can bemade by those skilled in the art without departing from the spirit andscope of the disclosure as hereinafter claimed.

What is claimed is:
 1. A navigation device, comprising: an internaloscillator configured to generate a clock signal having a clockfrequency; and a processor coupled to the internal oscillator, andconfigured to count the clock signal between successive displacementbeing readout to determine a polling period, generate displacement everyframe period, compare the polling period and the frame period todetermine whether to adjust the frame period, and adjust the frameperiod upon a difference between the polling period and the frame periodbeing smaller than a predetermined margin.
 2. The navigation device asclaimed in claim 1, wherein the processor is configured to count anumber of pulses of the clock signal between a pair of adjacent requestsfrom an external microcontroller unit (MCU) to determine the pollingperiod.
 3. The navigation device as claimed in claim 1, furthercomprising an I/O interface coupled to the processor, and configured toreceive a request from an external MCU and output the displacement inresponse to the request, wherein the processor is configured to count anumber of pulses of the clock signal between a pair of displacementadjacently outputted from the I/O interface to the external MCU todetermine the polling period.
 4. The navigation device as claimed inclaim 1, wherein the processor is configured to count the clock signalbetween the successive displacement being readout every predeterminedtime interval, and the predetermined time interval covers more numbersof displacement being readout when the predetermined margin is smaller.5. The navigation device as claimed in claim 1, wherein the processor isconfigured to adjust the frame period by increasing or decreasing theclock frequency.
 6. The navigation device as claimed in claim 1, whereinthe processor is configured to count a number of pulses of the clocksignal up to a predetermined number as the frame period, and adjust theframe period by increasing or decreasing the predetermined number. 7.The navigation device as claimed in claim 1, wherein the processor isconfigured to count one polling period using the clock signal between apair of displacement being readout, and then stop counting anotherpolling period using the clock signal for a predetermined number ofdisplacement being readout.
 8. A navigation system, comprising: acomputer system configured to send requests to read displacement; and anavigation device, coupled to the computer system, and comprising: anI/O interface configured to receive the requests from the computersystem and output the displacement to the computer system; an internaloscillator configured to generate a clock signal having a clockfrequency; and a processor coupled to the I/O interface and the internaloscillator, and configured to count the clock signal between successivedisplacement being readout to determine a polling period, generate thedisplacement every frame period, calculate a difference between thepolling period and the frame period, and compare the difference with apredetermined margin.
 9. The navigation system as claimed in claim 8,wherein the processor is configured to count a number of pulses of theclock signal between a pair of adjacent requests received from thecomputer system to determine the polling period.
 10. The navigationsystem as claimed in claim 8, wherein the processor is configured tocount a number of pulses of the clock signal between a pair ofdisplacement adjacently outputted from the I/O interface to the computersystem to determine the polling period.
 11. The navigation system asclaimed in claim 8, wherein the processor is configured to adjust theframe period when the difference is smaller than a predetermined margin.12. The navigation system as claimed in claim 11, wherein the processoris configured to adjust the frame period by increasing or decreasing theclock frequency.
 13. The navigation system as claimed in claim 11,wherein the processor is configured to count a number of pulses of theclock signal up to a predetermined number as the frame period, andadjust the frame period by increasing or decreasing the predeterminednumber.
 14. The navigation system as claimed in claim 11, wherein theprocessor is configured to count the clock signal between the successivedisplacement being readout every predetermined time interval, and thepredetermined time interval covers more numbers of displacement beingreadout when the predetermined margin is smaller.
 15. The navigationsystem as claimed in claim 8, wherein the processor is configured tocount one polling period using the clock signal between a pair ofdisplacement being readout, and then stop counting another pollingperiod using the clock signal for a predetermined number of displacementbeing readout.
 16. A frame rate adjusting method of a navigation device,the navigation device comprising an internal oscillator and a processor,the method comprising: counting, by the processor, a frame period usinga clock signal of the internal oscillator; counting, by the processor, apolling period using the clock signal of the internal oscillator tooutput displacement every polling period; calculating, by the processor,a difference between the frame period and the polling period; andadjusting, by the processor, the frame period when the difference issmaller than a predetermined margin.
 17. The frame rate adjusting methodas claimed in claim 16, wherein the predetermined margin is from 0.1% to16%.
 18. The frame rate adjusting method as claimed in claim 16, whereinthe polling period is a number of pulses of the clock signal beingcounted between adjacent two requests from an external MCU or betweenadjacent two outputted displacement.
 19. The frame rate adjusting methodas claimed in claim 16, wherein the frame period is adjusted byincreasing or decreasing a clock frequency of the internal oscillator,or by increasing or decreasing a predetermined number of pulses of theclock signal to generate one image frame.